<?php

class Outils_Connexion {

	/**
 	* Send a POST requst using cURL
 	* @param string $url to request
	* @param array $post values to send
	* @param array $options for cURL
	* @return string
	*/ 
	public static function curl_post($url, array $post = NULL, array $options = array()){
		if (PROXY_ENABLE) {
			$proxy = array (CURLOPT_PROXY => PROXY_HOST . ':' . PROXY_PORT);
		} else {
			$proxy = array();
		}
		
    	$defaults = array(
       		 CURLOPT_POST => 1,
       		 CURLOPT_HEADER => 0,
        	CURLOPT_URL => $url,
        	CURLOPT_FRESH_CONNECT => 1,
        	CURLOPT_RETURNTRANSFER => 1,
        	CURLOPT_FORBID_REUSE => 1,
        	CURLOPT_TIMEOUT => 4,
        	CURLOPT_POSTFIELDS => http_build_query($post)
    	);

    	$ch = curl_init();
    	curl_setopt_array($ch, ($options + $defaults + $proxy));
    	if( ! $result = curl_exec($ch))
    	{
        	throw new Exception("Erreur connexion CURL n ".curl_errno($ch)." : \"".curl_error($ch)."\"");
    	}
    	curl_close($ch);
		
    	return $result;
	}

	/**
	 * Send a GET requst using cURL
	 * @param string $url to request
	 * @param array $get values to send
	 * @param array $options for cURL
	 * @return string
	 */
	public static function curl_get($url, array $get = NULL, array $options = array())
	{   
	
		if (PROXY_ENABLE) {
			$proxy = array (CURLOPT_PROXY => PROXY_HOST . ':' . PROXY_PORT);
		} else {
			$proxy = array();
		}
		$defaults = array(
			CURLOPT_URL => $url. (strpos($url, '?') === FALSE ? '?' : ''). http_build_query($get),
			CURLOPT_HEADER => 0,
			CURLOPT_RETURNTRANSFER => TRUE,
			CURLOPT_TIMEOUT => 4
		);
	   
		$ch = curl_init();
		curl_setopt_array($ch, ($options + $defaults + $proxy));
		if( ! $result = curl_exec($ch))
		{
			throw new Exception("Erreur connexion CURL n ".curl_errno($ch)." : \"".curl_error($ch)."\"");
		}
		curl_close($ch);
		return $result;
	}
	

}


?>